﻿//-----------------------------------------------------------------------
// <copyright file="AnniversaryData.cs" company="Redmist">
//     Copyright (c) Damien T Smith. All rights reserved.
// </copyright>
// <author>Damien Smith</author>
//-----------------------------------------------------------------------

namespace Redmist.UsageMonitor.UsageData
{
    using System;

    /// <summary>Stores billing month anniversary data.</summary>
    public class AnniversaryData
    {
        /// <summary>Initializes a new instance of the AnniversaryData class.</summary>
        /// <param name="usageLastUpdated">A System.DateTime representing the time that usage statistics were last updated.</param>
        /// <param name="anniversaryDay">The day of the month of the billing anniversary.</param>
        /// <param name="nextAnniversary">A System.DateTime representing the next anniversary date.</param>
        /// <param name="lastAnniversary">A System.DateTime representing the previous anniversary date.</param>
        /// <param name="timeRetrieved">A System.DateTime representing the usage data retrieval time.</param>
        public AnniversaryData(DateTime usageLastUpdated, int anniversaryDay, DateTime nextAnniversary, DateTime lastAnniversary, DateTime timeRetrieved)
        {
            this.UsageLastUpdated = usageLastUpdated;
            this.AnniversaryDay = anniversaryDay;
            this.LastAnniversary = lastAnniversary;
            this.NextAnniversary = nextAnniversary;
            this.TimeRetrieved = timeRetrieved;
        }

        /// <summary>Gets a System.DateTime representing the time that usage statistics were last updated.</summary>
        public DateTime UsageLastUpdated { get; private set; }

        /// <summary>Gets a value representing the day of the month of the billing anniversary.</summary>
        public int AnniversaryDay { get; private set; }

        /// <summary>Gets a System.DateTime representing the next anniversary date.</summary>
        public DateTime NextAnniversary { get; private set; }

        /// <summary>Gets a System.DateTime representing the previous anniversary date.</summary>
        public DateTime LastAnniversary { get; private set; }

        /// <summary>Gets a System.DateTime representing the usage data retrieval time.</summary>
        public DateTime TimeRetrieved { get; private set; }
    }
}
